/*
 ===========================================================================
 Copyright (C) 1999-2005 Id Software, Inc.

 This file is part of Quake III Arena source code.

 Quake III Arena source code is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public License as
 published by the Free Software Foundation; either version 2 of the License,
 or (at your option) any later version.

 Quake III Arena source code is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with Quake III Arena source code; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 ===========================================================================
 */
//
// This file must be identical in the quake and utils directories

// contents flags are seperate bits
// a given brush can contribute multiple content bits

// these definitions also need to be in q_shared.h!

#define CONTENTS_SOLID                  1               // an eye is never valid in a solid
#define CONTENTS_LAVA                   8
#define CONTENTS_SLIME                  16
#define CONTENTS_WATER                  32
#define CONTENTS_FOG                    64

#define CONTENTS_NOTTEAM1               0x0080
#define CONTENTS_NOTTEAM2               0x0100
#define CONTENTS_NOBOTCLIP              0x0200

#define CONTENTS_AREAPORTAL             0x8000

#define CONTENTS_PLAYERCLIP             0x10000
#define CONTENTS_MONSTERCLIP            0x20000
//bot specific contents types
#define CONTENTS_TELEPORTER             0x40000
#define CONTENTS_JUMPPAD                0x80000
#define CONTENTS_CLUSTERPORTAL          0x100000
#define CONTENTS_DONOTENTER             0x200000
#define CONTENTS_BOTCLIP                0x400000
#define CONTENTS_MOVER                  0x800000

#define CONTENTS_ORIGIN                 0x1000000       // removed before bsping an entity
#define CONTENTS_BODY                   0x2000000       // should never be on a brush, only in game
#define CONTENTS_CORPSE                 0x4000000
#define CONTENTS_DETAIL                 0x8000000       // brushes not used for the bsp
#define CONTENTS_STRUCTURAL             0x10000000      // brushes used for the bsp
#define CONTENTS_TRANSLUCENT            0x20000000      // don't consume surface fragments inside
#define CONTENTS_TRIGGER                0x40000000
#define CONTENTS_NODROP                 0x80000000      // don't leave bodies or items (death fog, lava)
#define SURF_NODAMAGE                   0x1             // never give falling damage
#define SURF_SLICK                      0x2             // effects game physics
#define SURF_SKY                        0x4             // lighting from environment map
#define SURF_LADDER                     0x8
#define SURF_NOIMPACT                   0x10    // don't make missile explosions
#define SURF_NOMARKS                    0x20    // don't leave missile marks
#define SURF_FLESH                      0x40    // make flesh sounds and effects
#define SURF_NODRAW                     0x80    // don't generate a drawsurface at all
#define SURF_HINT                       0x100   // make a primary bsp splitter
#define SURF_SKIP                       0x200   // completely ignore, allowing non-closed brushes
#define SURF_NOLIGHTMAP                 0x400   // surface doesn't need a lightmap
#define SURF_POINTLIGHT                 0x800   // generate lighting info at vertexes
#define SURF_METALSTEPS                 0x1000  // clanking footsteps
#define SURF_NOSTEPS                    0x2000  // no footstep sounds
#define SURF_NONSOLID                   0x4000  // don't collide against curves with this set
#define SURF_LIGHTFILTER                0x8000  // act as a light filter during q3map -light
#define SURF_ALPHASHADOW                0x10000 // do per-pixel light shadow casting in q3map
#define SURF_NODLIGHT                   0x20000 // don't dlight even if solid (solid lava, skies)
#define SURF_DUST                       0x40000 // leave a dust trail when walking on this surface

// FIXME overrides (unused) contents...
#define CONTENTS_MOOR                   128
#define CONTENTS_SNOW                   256


// FIXME bullshit
#define SURF_MOOR                       0x80000
#define SURF_SNOW                       0x100000

#define SURF_SLOPE 0x200000
